A number of aspects of the background art will now be described with reference to the accompanying drawings:
FIG. 1 illustrates a sample image.
FIG. 2 illustrates a first prior art method of correcting color images.
FIG. 3 illustrates color correction graph of an ideal image not requiring color correction.
FIG. 4 illustrates color correction graphs of a non ideal color image that has had color correction applied, illustrating a change in color brightness.
FIG. 5 illustrates a color correction graph illustrating a decrease in brightness.
FIG. 6 illustrates a color correction graph illustrating a change in contrast.
Color images are often stored on a computer system in a certain format, convenient for the display of images on a color display device. One such format is an RGB additive color format where, for each pixel to be displayed, integer values of the Red, Green and Blue color channel components of that particular pixel are stored, with normally the integer values only taking on a certain range of values. For example, a common format used is to store 8-bits of color information for each of the Red, Green and Blue color channels, with each channel taking on possible values in the range of 0 to 255, thereby providing 256 separate color levels, and over 16 million separate displayable colors when considering all three color channels.
Other popular data storage fomats, to which the present invention can be applied, by means of transformations, known to those skilled in the art, include Cyan, Magenta, Yellow and Black (CYMK), Hue, Saturation, Value (HSV), Hue, Lightness, Saturation (HLS) models.
In another popular format for the storing colors (known as an RGBA format) the RGB information is stored in addition to an opacity value O being stored which relates to the degree of transparency (or Opacity) that particular image has at that particular pixel. This method of storage is especially convenient when multiple images are to be `composited` over one another and transparency effects are to be used in the final composite color image. A full discussion of the compositing process using an opacity channel is disclosed in `Compositing Digital Images` by Thomas Porter and Tom Duff, published in Computer Graphics, Volume 18, Number 3, July 1984, at page 253.
It is often desirable to correct particular color information in a picture by alteration of the particular color values that the color channels of an image take, a process known as color correction. This color correction process is often performed with images that have been scanned into a computer storage device using a scanning device designed to produce, for example, RGB formatted color output. The reasons for performing color correction are many and various and include:
the correction of over- or under exposure problems,
to neutralize any color cast due to lighting, filters, film, etc. and
to optimise the reproduction range by adjusting the overall contrast.
Adjustment of tonal clipping of areas near the extremes of the displayable gamut of colors and the correction of out of gamut errors.
Applying various enhancements to the image, by for example, altering certain colors so that the image has a `warmer` or `cooler` appearance.
Color information data stored containing opacity information can be used with the present invention by first recovering the relevant color information and using the method of the present invention on the recovered color information.
Referring now to FIG. 1 and FIG. 2, there is shown a first method of correcting color images. In a software system designed for the color correction of images, a color correction panel 1 is provided containing a number of sliders 2, one for each color channel, from which the user can select and alter the sliders and the effect of the alterations are transferred to the image 4. These effects are often applied immediately to the image 4 thereby providing an immediate feed back effect. Alternatively, a manual input means 3 is provided for inputting selected numerical values to which the sliders 2 are automatically set and the changes reflected in the image 4. The values which the sliders can take lie between a certain maximum and minimum range (generally 0 to 255) and are used to derive a contrast and brightness value for each color channel as described below.
Referring now to FIG. 3 there is shown,color correction graph of an ideal image not requiring Color correction. In this image the pixel values at each location and for each channel stay the same for the input and output, for example, an input value of 100 will become an output value of 100, and so forth. The contrast value is derived to be a measure of the gradient of the color correction graph, whereas the brightness value is defined to be a measure of the output value at an input intensity of zero.
Referring now to FIG. 4 there is shown color correction graphs of a non ideal color image that has had color correction applied, illustrating a change in color brightness. In this example of a color correction graph 5 the brightness has been increased to a base level 6, so that the minimum value of input now has a greater value of output and all other color values are mapped accordingly. As it is assumed that the maximum color value displayable using an 8-bit schema is 255, and that input values that would normally give values greater than this maximum limit 7 are mapped to 255.
Referring now to FIG. 5 there is shown a color correction graph illustrating a decrease in brightness. Again, those values that would fall below a minimum limit 8, must be clippped to zero.
Referring now to FIG. 6 there is shown color correction graph illustrating a change in contrast. In this graph, the contrast, or gradient of the graph, has been increased so that the difference between neighbouring values has also increased, thereby increasing the contrast of a certain portion of the image. Those values less than a minimum (or maximum) limit 8 are clipped to be at that maximum limit.
Hence for each channel of input color, a color correction graph can be described by two variables, being the gradient or contrast c, and the intercept value for zero input being the brightness b. The output color produced relative to the input color, apart from any bounds clipping that may take place, is related by the equation: EQU output=(input * c)+b (EQ 1)
The values for b and c can be read directly for the slider channel for each color and the relevant color corrections applied for each color channel. Although experienced publishers of color images can effectively use such a color slider device as they have a good idea of how such a device works, a novice user is at a disadvantage in the use of such a device and therefore utility of such a color correction panel is limited.